/*
 * Copyright 2025 arisgo@163.com
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.arisgo.cloud.auth.sys.vo;

import com.arisgo.cloud.web.model.NumberId;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

/**
 * 客户端表
 *
 * @author Arisgo
 * @since 2024-06-14
 */
@Data
@Schema(description = "客户端表信息")
public class ClientVo extends NumberId {

    /**
     * 客户端id
     */
    @Schema(name = "clientId", description = "客户端id")
    private String clientId;

    /**
     * 客户端密钥
     */
    @Schema(name = "clientSecret", description = "客户端密钥")
    private String clientSecret;

    /**
     * 资源集合
     */
    @Schema(name = "resourceIds", description = "资源集合")
    private String resourceIds;

    /**
     * 授权范围
     */
    @Schema(name = "scope", description = "授权范围")
    private String scope;

    /**
     * 授权类型
     */
    @Schema(name = "authorizedGrantTypes", description = "授权类型")
    private String authorizedGrantTypes;

    /**
     * 回调地址
     */
    @Schema(name = "webServerRedirectUri", description = "回调地址")
    private String webServerRedirectUri;

    /**
     * 权限
     */
    @Schema(name = "authorities", description = "权限")
    private String authorities;

    /**
     * 令牌过期秒数
     */
    @Schema(name = "accessTokenValidity", description = "令牌过期秒数")
    private Integer accessTokenValidity;

    /**
     * 刷新令牌过期秒数
     */
    @Schema(name = "refreshTokenValidity", description = "刷新令牌过期秒数")
    private Integer refreshTokenValidity;

    /**
     * 附加说明
     */
    @Schema(name = "additionalInformation", description = "附加说明")
    private String additionalInformation;

    /**
     * 自动授权
     */
    @Schema(name = "autoapprove", description = "自动授权")
    private String autoapprove;

    /**
     * 创建部门
     */
    @Schema(name = "createDept", description = "创建部门")
    private Long createDept;

    /**
     * 状态
     */
    @Schema(name = "status", description = "状态")
    private Integer status;

}
